package dletc.Lamda;
/*
* 简化Lambda
* 1.Lambda是从匿名内部类推导出 可以进一步简化
* 2.可以进一步简化Lambda表达式 去除 形参的类型、代表方法形参的小括号、代表方法体的大括号（只有一行时可以简略）
* 3.Lambda表达式 -> 前为方法形参部分 -> 后为方法体
* */
public class StudyLambda2 {

    private static Ilove love;

    public static void main(String[] args) {

        //匿名内部类
        love = new Ilove() {
            @Override
            public void lambda(int a) {
                System.out.println("I love jy" + a);
            }
        };

        love.lambda(520);

        //Lambda
        love = (int a ) -> {
            System.out.println("I love jy" + a);
        };
        love.lambda(521);

        //简约1 去掉 形参的类型
        love = (a) -> {
            System.out.println("I love jy" + a);
        };
        love.lambda(1314);

        //简约2 去掉 小括号
        love = a -> {
            System.out.println("I love jy" + a);
        };
        love.lambda(1314520);

        //简约3 去掉 大括号（只有一行时可以简略）
        love = a -> System.out.println("I love jy" + a);
        love.lambda(1314521);

        //a是形参
        Ilove ilove = b -> {};
    }
}

//函数接口
interface Ilove{
    void lambda(int a);
}
